/**
 * Clase que representa la estructura de la tabla en un objeto Java. Cada
 * atributo de la tabla es creado como variables y su formato como anotaciones
 *
 * @version 1.0, 25/04/12
 * @author avbravo
 */
package user.login;

import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "person_userBeans")
@RequestScoped
public class Beans {

    private Integer id = 0;
    private String nombre = "";
    private String apellido = "";
    private String usuario = "";
    private String clave = "";
    private Integer id_compañia = 0;
    private Integer rol = -1;
    private Date login = new java.util.Date();
    private Date unLogin = new java.util.Date();
    private Date registrado = new java.util.Date();
    private Boolean activo = false;

    public Beans() {
    }

    /**
     * MÃ©todo constructor que asigna todos los valores del registro de un
     * usuario
     *
     * @param id Atributo que identifica la llave primaria (Autosecuencia)
     * @param usuario Atributo del usuario para el login
     * @param clave Atributo que identifica la contraseÃ±a
     * @param idioma Atributo que identifica el idioma
     * @param login Atributo que identifica la fecha de login
     * @param unlogin Atributo que identifica la fecha de finalizar session
     * @param activo Atributo que identifica si puede o no hacer login
     */
    public Beans(int id, String nombre, String apellido, String usuario, String clave, Integer id_copañia, Integer rol, Date login, Date unLogin, Date registrado,Boolean activo) {
        this.id = id;
        this.nombre = nombre;
        this.apellido = apellido;
        this.usuario = usuario;
        this.clave = clave;
        this.id_compañia = id_copañia;
        this.rol = rol;
        this.login = login;
        this.unLogin = unLogin;
        this.registrado = registrado;
        this.activo = activo;
    }
     public void clearBeans() {
        setId(0);
        setNombre("");
        setApellido("");
        setUsuario("");
        setClave("");
   // no se puede limipiar en el caso del rol administrativo 
           //     setId_compañia(0);
        setIdl_rol(0);
        setLogin(new java.util.Date());
        setUnLogin(new java.util.Date());
        setRegistrado(new java.util.Date());
        setActivo(false);
    }

    /**
     * MÃ©todo que permite sustituir caracteres especiales que puedan afectar las
     * sentencias SQL. por ejemplo: ('), (/). Debe ser utilizado en el (set) de
     * los atributos tipo String.
     *
     * @param data cualquier dato tipo String
     * @return Devuelve el dato con la sustituciÃ³n de caracteres especiales
     */
    private String strScape(String data) {
        data = data.trim();
        data = data.replace("'", "''");
        data = data.replace("\\", "\\\\");
        return data;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return this.id;
    }

    public void setNombre(String usuario) {
        this.nombre = strScape(usuario);
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public Integer getId_compañia() {
        return id_compañia;
    }

    public void setId_compañia(Integer id_compañia) {
        this.id_compañia = id_compañia;
    }

    public Integer getIdl_rol() {
        return rol;
    }

    public void setIdl_rol(Integer rol) {
        this.rol = rol;
    }

    public String getNombre() {
        return strScape(this.nombre);
    }

    public void setClave(String clave) {
        this.clave = strScape(clave);
    }

    public String getClave() {
        return this.clave;
    }

    public void setLogin(Date login) {
        this.login = login;
    }

    public Date getLogin() {
        return this.login;
    }

    public Date getUnLogin() {
        return unLogin;
    }

    public void setUnLogin(Date unlogin) {
        this.unLogin = unlogin;
    }

    public Date getRegistrado() {
        return registrado;
    }

    public void setRegistrado(Date registrado) {
        this.registrado = registrado;
    }

    public void setActivo(Boolean activo) {
        this.activo = activo;
    }

    public Boolean getActivo() {
        return this.activo;
    }
}
